#pragma once

#include <list>

#include "lexer.h"
#include "pass.h"
#include "token.h"

class Preprocessor : public Pass {
    using TokenList = std::list<Token::BaseToken*>;

  public:
    TokenList Scan(const TokenList& tokens);

    void* Run(void* input) override;
};
